perm filename SEER.SAI[11,ALS] blob
sn#061566 filedate 1973-09-10 generic text, type T, neo UTF8
00010 BEGIN "SEE"
00020 DEFINE ⊂="COMMENT"; ⊂ 9/10/73;
00030
00040 ⊂ This program analyses RES.DAT and USE.DAT tables
00050 and reports on their contents;
00060
00090 REQUIRE "BLOCKS.HDR" SOURCE_FILE;
00100 INTEGER CHAN1,CHAN2,CHAN3,EOF,MAX,ZEROC;
00110 INTEGER ARRAY RES,LRN[0:TABSIZ];
00120 INTEGER X1,X2,X3,X4,S1,S2,S3,S4,S1F,S2F,S3F,S4F,I,J,K,
00130 S1T,S2T,S3T,S4T,OLD,NEW,SUM,F1,F2,F3,F4,T1,T2,T3,T4;
00140 STRING READ1,READ2;
00150
00160 HEADIN;
00170 CHAN1←1; CHAN2←2; CHAN3←3;
00180 CLOSE(CHAN1); OPEN(CHAN1,"DSK",'10,10,0,0,0,EOF);
00190 LOOKUP(CHAN1,"LRN.DAT",0);
00200 CLOSE(CHAN2); OPEN(CHAN2,"DSK",'10,10,0,0,0,EOF);
00210 LOOKUP(CHAN2,"RES.DAT",0);
00220
00230 OPEN(CHAN3,"DSK",0,0,10,0,0,EOF);
00240 ENTER(CHAN3,"SEESUM.DOC",0);
00250 OUT(CHAN3,TB&"SIGNATURE TABLE SUMMARY as of "&DATIME&CRLF&LF);
00260
00270
00280 OUT(CHAN3,CRLF&"The following tables exist"&CRLF);
00290 OUT(CHAN3,"Name"&TB&"Parent"&TB&"Out1 Lev1"&TB&"Out2 Lev2"&TB&
00300 "Out3 Lev3"&TB&"Out4 Lev4"&TB&
00310 "IN1"&TB&"IN2"&TB&"IN3"&TB&"IN4"&CRLF);
00320 SETFORMAT(3,0);
00330 FOR I←0 STEP 1 UNTIL TABNUM DO BEGIN
00340 IF NAMES[I]=0 THEN DONE;
00350 J←(IN1[I] LAND '77);K←(IN2[I] LAND '77);
00360 IF (IN3[I]=0) THEN READ1←" "
00370 ELSE READ1←CVSTR(INNAM[IN3[I] LAND '77]);
00380 IF (IN4[I]=0) THEN READ2←" " ELSE
00390 READ2←CVSTR(INNAM[IN4[I] LAND '77]);
00400 OUT(CHAN3,CVSTR(NAMES[I])&TB&CVSTR(PARENN[I])&TB&
00410 CVSTR(OUT1[I])&" "&CVS(LDB(POINT(9,LEVEL[I],8)))&TB&
00420 CVSTR(OUT2[I])&" "&CVS(LDB(POINT(9,LEVEL[I],17)))&TB);
00430 IF OUT3[I]=0 THEN OUT(CHAN3," "&TB) ELSE
00440 OUT(CHAN3,CVSTR(OUT3[I])&" "&CVS(LDB(POINT(9,LEVEL[I],26)))&TB);
00450 IF OUT4[I]=0 THEN OUT(CHAN3," "&TB) ELSE
00460 OUT(CHAN3,CVSTR(OUT4[I])&" "&CVS(LDB(POINT(9,LEVEL[I],35)))&TB);
00470 OUT(CHAN3,CVSTR(INNAM[J])&TB&CVSTR(INNAM[K])&TB
00480 &READ1&TB&READ2&CRLF); END;
00490
00500
00510 OUT(CHAN3,CRLF&"Name"&TB&"Out1 Find Tare Total Out2 "&
00520 "Find Tare Total Out3 Find Tare Total Out4 "&
00530 "Find Tare Total Max."&TB&"Zeros"&CRLF&LF);
00540
00550 FOR I←0 STEP 1 UNTIL TABNUM DO BEGIN
00560 IF NAMES[I]=0 THEN DONE;
00570 ARRYIN(CHAN1,LRN[0],TABSIZ);
00580 ARRYIN(CHAN2,RES[0],TABSIZ);
00590 S1←S2←S3←S4←S1F←S2F←0; S3F←S4F←S1T←S2T←S3T←S4T←0;
00600 X1←X2←X3←X4←MAX←ZEROC←0;
00610 FOR J←0 STEP 1 UNTIL 255 DO BEGIN
00620 OLD←LDB(POINT(9,RES[J],8)); NEW←LDB(POINT(9,LRN[J],8));
00630 X1←(OLD LSH 5)+NEW; S1←S1+X1;
00640 OLD←LDB(POINT(9,RES[J],17)); NEW←LDB(POINT(9,LRN[J],17));
00650 X2←(OLD LSH 5)+NEW;S2←S2+X2;
00660 OLD←LDB(POINT(9,RES[J],26)); NEW←LDB(POINT(9,LRN[J],26));
00670 X3←(OLD LSH 5)+NEW; S3←S3+X3;
00680 OLD←LDB(POINT(9,RES[J],35)); NEW←LDB(POINT(9,LRN[J],35));
00690 X4←(OLD LSH 5)+NEW; S4←S4+X4;
00700
00710
00720 K←X1+X2+X3+X4;IF K=0 THEN ZEROC←ZEROC+1;IF K>MAX THEN MAX←K;
00730
00740 IF X1>X2 THEN BEGIN "X1X2"
00750 IF X1>X3 THEN IF X1>X4 THEN BEGIN
00760 S1F←S1F+X1; S1T←S1T+X2+X3+X4; END ELSE BEGIN
00770 S4F←S4F+X4; S4T←S4T+X1+X3+X4;END;
00780 IF X3≥X1 THEN IF X3>X4 THEN BEGIN
00790 S3F←S3F+X3; S3T←S3T+S1+S2+S4; END ELSE BEGIN
00800 S4F←S4F+X4; S4T←S4T+X1+X2+X3; END; END "X1X2";
00810 IF X2≥X1 THEN BEGIN "X2X1"
00820 IF X2>X3 THEN IF X2>X4 THEN BEGIN
00830 S2F←S2F+X2; S2T←S2T+X1+X3+X4; END ELSE BEGIN
00840 S4F←S4F+X4; S4T←S4T+X1+X2+X3; END;
00850 IF X3≥X2 THEN IF X3>X4 THEN BEGIN
00860 S3F←S3F+X3; S3T←S3T+X1+X2+X4; END ELSE BEGIN
00870 S4F←S4F+X4; S4T←S4T+X1+X2+X3; END; END "X2X1";
00880 END;
00890 F1←(S1F*100)/S1; F2←(S2F*100)/S2; F3←(S3F*100)/S3; F4←(S4F*100)/S4;
00900 T1←(S1T*100)/(S1F+S1T); T2←(S2T*100)/(S2F+S2T);
00910 T3←(S3T*100)/(S3F+S3T); T4←(S4T*100)/(S4F+S4T);
00920
00930 SETFORMAT(2,0);
00940 OUT(CHAN3,CVSTR(NAMES[I])&TB&
00950 CVSTR(OUT1[I])&TB&CVS(F1)&" "&CVS(T1));
00960 SETFORMAT(7,0); OUT(CHAN3,CVS(S1)&TB); SETFORMAT(2,0);
00970 OUT(CHAN3,CVSTR(OUT2[I])&TB&CVS(F2)&" "&CVS(T2));
00980 SETFORMAT(7,0); OUT(CHAN3,CVS(S2)&TB); SETFORMAT(2,0);
00990 IF OUT3[I]=0 THEN OUT(CHAN3,TB&" "&TB) ELSE BEGIN
01000 OUT(CHAN3,CVSTR(OUT3[I])&TB&CVS(F3)&" "&CVS(T3));
01010 SETFORMAT(7,0); OUT(CHAN3,CVS(S3)&TB); SETFORMAT(2,0); END;
01020 IF OUT4[I]=0 THEN OUT(CHAN3,TB&" "&TB) ELSE BEGIN
01030 OUT(CHAN3,CVSTR(OUT4[I])&TB&CVS(F4)&" "&CVS(T4));
01040 SETFORMAT(7,0); OUT(CHAN3,CVS(S4)&TB); END;
01050 SETFORMAT(4,0);
01060 OUT(CHAN3,CVS(MAX)&TB&CVS(ZEROC)&CRLF);
01070 END;
01080 CLOSE(CHAN3); CLOSE(CHAN1); CLOSE(CHAN2); RELEASE(CHAN3);
01090 SPOOL("SEESUM.DOC",GETCHAN,1);
01100 OUTSTR("Output sent to spooler as SEESUM.DOC"&CRLF);
01110
01120 END "SEE";